package xyz.sekai52799.utils;

import java.util.ArrayList;
import java.util.List;

public class PrimeNumber {

    /**
     * 得到比num小的所有质数
     * @param num 一个正整数
     * @return 比num小的所有质数list
     */
    public static List<Integer> getPrimeNumberList(int num){
        List<Integer> primeNumberList = new ArrayList<>();
        double sqrt = Math.sqrt(num);
        primeNumberList.add(2);
        for (int i = 1;i <= num;i++){
            boolean notPrime = false;
            for (Integer number : primeNumberList){
                if (number > sqrt){
                    break;
                }
                if (i % number == 0 && i != number){
                    notPrime = true;
                    break;
                }
            }
            if (!notPrime && i != 2 && i != 1){
                primeNumberList.add(i);
            }
        }
        return primeNumberList;
    }

    /**
     * 验证是不是质数
     * @param num
     * @return
     */
    public static boolean isPrimeNumber(int num){
        List<Integer> primeNumberList = getPrimeNumberList(num);
        return primeNumberList.get(primeNumberList.size() - 1).equals(num);
    }
}
